package com.copa.ums.modules.ums.service;

import com.copa.ums.common.api.CommonPage;
import com.copa.ums.common.vo.ResponseVo;
import com.copa.ums.modules.ums.model.UmsMenu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.copa.ums.modules.ums.vo.UmsMenuNodeVo;

import java.util.List;

/**
 * @author copa
 * @since 2022-10-31
 */
public interface UmsMenuService extends IService<UmsMenu> {

    /**
     * 根据用户ID获取对应菜单
     */
    List<UmsMenu> getMenuList(Long userId);

    /**
     * 创建后台菜单
     */
    ResponseVo<String> create(UmsMenu menu);

    /**
     * 修改后台菜单
     */
    ResponseVo<String> update(Long menuId, UmsMenu menu);

    /**
     * 分页查询后台菜单
     */
    ResponseVo<CommonPage<UmsMenu>> list(Long parentId, Integer pageSize, Integer pageNum);

    /**
     * 树形结构返回所有菜单列表
     */
    ResponseVo<List<UmsMenuNodeVo>> treeList();

    /**
     * 修改菜单显示状态
     */
    ResponseVo<String> updateHidden(Long menuId, Integer hidden);

    /**
     * 根据角色id查询菜单
     */
    List<UmsMenu> listMenuByRoleId(Long roleId);
}
